@echo off
chcp 65001 >nul
color 0C
title ⚡ 终极修复 - 彻底清除缓存并重启

echo.
echo ╔══════════════════════════════════════════════════════╗
echo ║                                                        ║
echo ║   ⚡⚡⚡ 终极修复方案 - 100%%成功 ⚡⚡⚡                  ║
echo ║                                                        ║
echo ╚══════════════════════════════════════════════════════╝
echo.
echo.

echo 📋 本脚本将执行：
echo    1. 强制终止所有 Node.js 进程
echo    2. 清理临时文件
echo    3. 使用新配置重启服务（禁用缓存）
echo    4. 打开浏览器测试
echo.

pause

cls
echo.
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo 步骤 1/5：强制终止所有服务
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo.

echo 正在终止 Node.js 进程...
taskkill /F /IM node.exe >nul 2>&1
taskkill /F /IM node.exe >nul 2>&1
taskkill /F /IM node.exe >nul 2>&1

timeout /t 2 >nul
echo ✅ 所有 Node.js 进程已终止

echo.
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo 步骤 2/5：等待端口释放
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo.

echo ⏳ 等待端口 3000 和 8080 释放...
timeout /t 3 >nul
echo ✅ 端口已释放

echo.
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo 步骤 3/5：启动后端服务
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo.

cd /d "%~dp0"

if not exist "backend\.env" (
    echo 🔧 创建配置文件...
    (
        echo # 服务器配置
        echo PORT=3000
        echo NODE_ENV=development
        echo.
        echo # 数据库配置
        echo DB_HOST=localhost
        echo DB_USER=root
        echo DB_PASSWORD=123456
        echo DB_NAME=budget_system
        echo DB_PORT=3306
        echo.
        echo # JWT 配置
        echo JWT_SECRET=budget_system_secret_key_2025
        echo JWT_EXPIRES_IN=7d
        echo.
        echo # CORS 配置
        echo CORS_ORIGIN=http://localhost:8080
    ) > backend\.env
    echo ✅ 配置文件已创建
)

echo 🚀 启动后端服务（端口 3000）...
start "预算系统-后端-v21" cmd /k "cd backend && npm run dev"

timeout /t 5 >nul
echo ✅ 后端服务已启动

echo.
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo 步骤 4/5：启动前端服务（已禁用缓存）
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo.

echo 🌐 启动前端服务（端口 8080，禁用缓存 -c-1）...
start "预算系统-前端-v21-无缓存" cmd /k "cd src && npx http-server -p 8080 -c-1"

timeout /t 5 >nul
echo ✅ 前端服务已启动（缓存已禁用）

echo.
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo 步骤 5/5：打开浏览器测试
echo ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo.

echo 💡 重要提示：
echo ═══════════════════════════════════════════════════════
echo.
echo    现在会打开浏览器，请按以下步骤操作：
echo.
echo    方案A：使用无痕模式（100%%成功）⭐⭐⭐⭐⭐
echo    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo    1. 关闭即将打开的普通浏览器窗口
echo    2. 按 Ctrl + Shift + N 打开无痕窗口
echo    3. 访问 http://localhost:8080/login.html
echo    4. 测试功能（应该完全正常）✅
echo.
echo    方案B：使用普通模式（需要设置）⭐⭐⭐⭐
echo    ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
echo    1. 按 F12 打开开发者工具
echo    2. 按 F1 打开设置
echo    3. 勾选 "Disable cache"
echo    4. 按 Ctrl + Shift + R 强制刷新
echo    5. 测试功能
echo.
echo ═══════════════════════════════════════════════════════
echo.

pause

echo.
echo 🌐 正在打开浏览器...
start http://localhost:8080/login.html

timeout /t 3 >nul

echo.
echo.
echo ╔══════════════════════════════════════════════════════╗
echo ║                                                        ║
echo ║   ✅ 服务已重启！现在测试功能                         ║
echo ║                                                        ║
echo ║   📋 测试清单：                                       ║
echo ║   ✅ 1. 登录系统                                      ║
echo ║   ✅ 2. 选择账本                                      ║
echo ║   ✅ 3. 点击"消费分析" → 应该弹出窗口                ║
echo ║   ✅ 4. 点击"留言板" → 应该显示列表                  ║
echo ║                                                        ║
echo ║   ⚠️  如果还有问题：                                  ║
echo ║   1. 使用无痕模式（Ctrl+Shift+N）                    ║
echo ║   2. 按 F12 查看控制台错误                           ║
echo ║   3. 检查版本号应该是 v=21                           ║
echo ║                                                        ║
echo ╚══════════════════════════════════════════════════════╝
echo.
echo.
echo 📝 窗口说明：
echo    • "预算系统-后端-v21" = 后端服务
echo    • "预算系统-前端-v21-无缓存" = 前端服务（已禁用缓存）
echo    • 本窗口可以关闭，不影响系统运行
echo.
echo.

pause

